home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / a_utils / _archvrs / unix / unzip51 / makefile < prev    next >
Makefile  |  1992-11-04  |  23KB  |  638 lines

  1. #==============================================================================
  2. # Makefile for UnZip, ZipInfo & FUnZip:  Unix, OS/2, MS-DOS ("real" makes only)
  3. # Version:  5.1 (inflate,explode)                               25 October 1992
  4. #==============================================================================
  5. #
  6. #
  7. # INSTRUCTIONS (such as they are):
  8. #
  9. # "make vax"    -- makes UnZip on a generic Unix VAX in the current directory
  10. # "make"    -- uses environment variable SYSTEM to set the type system for
  11. #            which to compile.  This doesn't work for some particularly
  12. #            brain-damaged versions of make (VAX BSD, Gould, and SCO
  13. #            Unix are in this group).  If SYSTEM is not set, gives in-
  14. #            structions on what to try instead.
  15. # "make list"    -- lists all supported systems (targets)
  16. # "make wombat" -- chokes and dies if you haven't added the specifics for your
  17. #            Wombat 68000 (or whatever) to the systems list
  18. #
  19. # CF are flags for the C compiler.  LF are flags for the loader.  LF2 are more
  20. # flags for the loader, if they need to be at the end of the line instead of at
  21. # the beginning (for example, some libraries).  ZC, ZL and ZL2 are the corre-
  22. # sponding flags for ZipInfo, and FC, FL and FL2 go with FUnZip.  LOCAL_UNZIP
  23. # is an environment variable that can be used to add default C flags to your
  24. # compile without editing the Makefile (e.g., -DDEBUG_STRUC, or -FPi87 on PCs).
  25. #
  26. # Some versions of make do not define the macro "$(MAKE)"; this is rare, but
  27. # if things don't work, try using "make" instead of "$(MAKE)" in your system's
  28. # makerule.  Or try adding the following line to your .login file:
  29. #    setenv MAKE "make"
  30. # (That never works--makes which are too stupid to define MAKE are also too
  31. # stupid to look in the environment--but try it anyway for kicks. :-) )
  32. #
  33. # Memcpy and memset are provided for those systems that don't have them; they
  34. # are in shared.c and will be used if -DZMEM is included in CF.  These days
  35. # almost all systems have them.
  36. #
  37. # Be sure to test your new UnZip (and ZipInfo and FUnZip); successful compila-
  38. # tion does not always imply a working program.
  39.  
  40.  
  41. #####################
  42. # MACRO DEFINITIONS #
  43. #####################
  44.  
  45. # Defaults most systems use (use LOCAL_UNZIP in environment to add flags, 
  46. # such as -DNOMEMCPY).
  47.  
  48. # UnZip flags
  49. CC = cc#    try using "gcc" target rather than changing this (if you do,
  50. LD = cc#    you MUST change LD, too--else "unresolved symbol:  ___main")
  51. LOC = $(LOCAL_UNZIP)
  52. CF = -O $(LOC)
  53. LF = -o unzip
  54. LF2 = -s
  55.  
  56. # ZipInfo flags
  57. ZC = -DZIPINFO
  58. ZL = -o zipinfo
  59. ZL2 = $(LF2)
  60.  
  61. # FUnZip flags
  62. FC = -DFUNZIP
  63. FL = -o funzip
  64. FL2 = $(LF2)
  65.  
  66. # general-purpose stuff
  67. CP = cp
  68. RM = rm -f
  69. E =
  70. O = .o
  71. M = unix
  72. SHELL = /bin/sh
  73. INSTALL = cp#            probably can change this to 'install' if you have it
  74. BINDIR = /usr/local/bin#   target directory - where to install executables
  75. MANDIR = /usr/local/man/cat1#    target directory - where to install man pages
  76.  
  77. # object files
  78. OBJS1 = unzip$O crypt$O envargs$O explode$O extract$O file_io$O inflate$O
  79. OBJS2 = mapname$O match$O shared$O unreduce$O unshrink$O
  80. OBJS = $(OBJS1) $(OBJS2) $M$O
  81. LOBJS = $(OBJS)
  82. OBJS_OS2 = $(OBJS1:.o=.obj) $(OBJS2:.o=.obj) os2.obj
  83. OBJZ = zipinfo$O envargs$O match$O shared$O
  84. OBJZ_OS2 = $(OBJZ:.o=.obj) os2_.obj
  85. OBJF = funzip$O crypt_$O inflate$O
  86. OBJF_OS2 = $(OBJF:.o=.obj) # os2_.obj ??
  87. OBJF_DOS = funzip.obj inflate.obj
  88.  
  89. # executables
  90. UNZIPS = unzip$E zipinfo$E funzip$E
  91. MANS = unzip.1 zipinfo.1 funzip.1
  92. DOCS = unzip.doc zipinfo.doc funzip.doc
  93.  
  94. # list of supported systems/targets in this version
  95. SYSTEMS1 = 386i 3Bx 7300 amdahl apollo aviion bcc_dos bsd bull coherent
  96. SYSTEMS2 = convex cray cray_cc cray_v3 cyber_sgi dec dnix encore eta gcc
  97. SYSTEMS3 = gcc_dos generic generic2 gould hk68 hp hpux indigo linux minix
  98. SYSTEMS4 = mips msc_dos next next10 next2x next3x osf1 p_iris ptx pyramid
  99. SYSTEMS5 = rs6000 rtaix sco_dos sco_x286 sequent sgi stellar sun sysv
  100. SYSTEMS6 = sysv6300 tahoe ultrix vax wombat xenix xos
  101.  
  102. # SYS_UTIL1 = zipinfo zi_msc zi_bcc zi_djgcc zi_gcc zi_indigo funzip fu_gcc
  103. # SYS_UTIL2 = 
  104.  
  105.  
  106. ####################
  107. # DEFAULT HANDLING #
  108. ####################
  109.  
  110. # The below will try to use your shell variable "SYSTEM" as the type system
  111. # to use (e.g., if you type "make" with no parameters at the command line).
  112. # The test for $(MAKE) is necessary for VAX BSD make (and Gould, apparently),
  113. # as is the "goober" (else stupid makes see an "else ;" statement, which they
  114. # don't like).  "goober" must then be made into a valid target for machines
  115. # which DO define MAKE properly (and have SYSTEM set).  Quel kludge, non?
  116. # And to top it all off, it appears that the VAX, at least, can't pick SYSTEM
  117. # out of the environment either (which, I suppose, should not be surprising).
  118. # [Btw, if the empty "goober" target causes someone else's make to barf, just
  119. # add an "@echo > /dev/null" command (or whatever).  Works OK on the Amdahl
  120. # and Crays, though.]
  121.  
  122. default:
  123.     @if test -z "$(MAKE)"; then\
  124.         if test -z "$(SYSTEM)";\
  125.         then make help;\
  126.         else make $(SYSTEM) MAKE="make";\
  127.         fi;\
  128.     else\
  129.         if test -z "$(SYSTEM)";\
  130.         then $(MAKE) help;\
  131.         else $(MAKE) $(SYSTEM) goober;\
  132.         fi;\
  133.     fi
  134.  
  135. goober:
  136.  
  137. help:
  138.     @echo
  139.     @echo\
  140.  "  If you're not sure about the characteristics of your system, try typing"
  141.     @echo\
  142.  '  "make generic".  If the compiler barfs and says something unpleasant about'
  143.     @echo\
  144.  '  "timezone redefined," try typing "make clean" followed by "make generic2".'
  145.     @echo\
  146.  '  One of these actions should produce a working copy of unzip on most Unix'
  147.     @echo\
  148.  '  systems.  If you know a bit more about the machine on which you work, you'
  149.     @echo\
  150.  '  might try "make list" for a list of the specific systems supported herein.'
  151.     @echo\
  152.  '  And as a last resort, feel free to read the numerous comments within the'
  153.     @echo\
  154.  '  Makefile itself.  Note that to compile the decryption version of UnZip,'
  155.     @echo\
  156.  '  you must obtain the full versions of crypt.c and crypt.h (see the "Where"'
  157.     @echo\
  158.  '  file for ftp and mail-server sites).  Have an excruciatingly pleasant day.'
  159.     @echo
  160.  
  161. list:
  162.     @echo
  163.     @echo\
  164.  'Type "make <system>", where <system> is one of the following:'
  165.     @echo
  166.     @echo  "    $(SYSTEMS1)"
  167.     @echo  "    $(SYSTEMS2)"
  168.     @echo  "    $(SYSTEMS3)"
  169.     @echo  "    $(SYSTEMS4)"
  170.     @echo  "    $(SYSTEMS5)"
  171.     @echo  "    $(SYSTEMS6)"
  172.     @echo
  173.     @echo\
  174.  'Otherwise set the shell variable SYSTEM to one of these and just type "make".'
  175. #    @echo\
  176. # 'Targets for related utilities (ZipInfo and FUnZip) include:'
  177. #    @echo
  178. #    @echo  "    $(SYS_UTIL1)"
  179. #    @echo  "    $(SYS_UTIL2)"
  180.     @echo
  181.     @echo\
  182.  'For further (very useful) information, please read the comments in Makefile.'
  183.     @echo
  184.  
  185. generic_msg:
  186.     @echo
  187.     @echo\
  188.  '  Attempting "make generic" now.  If this fails for some reason, type'
  189.     @echo\
  190.  '  "make help" and/or "make list" for suggestions.'
  191.     @echo
  192.  
  193.  
  194. ###############################################
  195. # BASIC COMPILE INSTRUCTIONS AND DEPENDENCIES #
  196. ###############################################
  197.  
  198. .c$O:
  199.     $(CC) -c $(CF) $*.c
  200.  
  201. .1.doc:
  202.     nroff -Tman -man $< | col -b | uniq | \
  203.      sed 's/Sun Release ..../Info-ZIP        /' > $@
  204.  
  205.  
  206. all:        generic_msg generic
  207. unzips:        $(UNZIPS)
  208. docs:        $(DOCS)
  209. unzipsman:    unzips docs
  210. unzipsdocs:    unzips docs
  211.  
  212.  
  213. clean:
  214.     rm -f $(OBJS) unzip$E $(OBJZ) zipinfo$E $(OBJF) funzip$E
  215.  
  216. install:    $(UNZIPS) $(MANS)
  217.     $(INSTALL) $(UNZIPS) $(BINDIR)
  218.     $(INSTALL) unzip.1 $(MANDIR)/unzip.l
  219.     $(INSTALL) zipinfo.1 $(MANDIR)/zipinfo.l
  220.     $(INSTALL) funzip.1 $(MANDIR)/funzip.l
  221.  
  222.  
  223. # EDIT HERE FOR PARALLEL MAKES on Sequent (and others?)--screws up MS-DOS
  224. # make utilities if default:  change "unzip$E:" to "unzip$E:&"
  225.  
  226. unzip$E:    $(OBJS)            # add `&' for parallel makes
  227.     $(LD) $(LF) $(LOBJS) $(LF2)
  228.  
  229. zipinfo$E:    $(OBJZ)            # add `&' for parallel makes
  230.     $(LD) $(ZL) $(OBJZ) $(ZL2)
  231.  
  232. funzip$E:    $(OBJF)            # add `&' for parallel makes
  233.     $(LD) $(FL) $(OBJF) $(FL2)
  234.  
  235.  
  236. crypt$O:    crypt.c unzip.h zip.h crypt.h
  237. envargs$O:    envargs.c unzip.h
  238. explode$O:    explode.c unzip.h
  239. extract$O:    extract.c unzip.h crypt.h
  240. file_io$O:    file_io.c unzip.h crypt.h
  241. funzip.o:    funzip.c unzip.h crypt.h
  242. funzip.obj:    funzip.c unzip.h crypt.h crypt.c zip.h    # MS-DOS only
  243. inflate$O:    inflate.c unzip.h
  244. mapname$O:    mapname.c unzip.h
  245. match$O:    match.c unzip.h
  246. msdos$O:    msdos.c unzip.h                # MS-DOS only
  247. os2$O:        os2.c unzip.h                # OS/2 only
  248. shared$O:    shared.c unzip.h
  249. unix$O:        unix.c unzip.h                # Unix only
  250. unreduce$O:    unreduce.c unzip.h
  251. unshrink$O:    unshrink.c unzip.h
  252. unzip$O:    unzip.c unzip.h crypt.h
  253. zipinfo$O:    zipinfo.c unzip.h
  254.  
  255. os2_$O:    os2.c unzip.h                # OS/2 only
  256.     $(CP) os2.c os2_.c
  257.     $(CC) -c $(CF) $(ZC) os2_.c
  258.     $(RM) os2_.c
  259.  
  260. crypt_$O:    crypt.c unzip.h zip.h crypt.h    # used by funzip
  261.     $(CP) crypt.c crypt_.c
  262.     $(CC) -c $(CF) $(FC) crypt_.c
  263.     $(RM) crypt_.c
  264.  
  265.  
  266. ################################
  267. # INDIVIDUAL MACHINE MAKERULES #
  268. ################################
  269.  
  270. #####   TABS ARE REQUIRED FOR MANY VERSIONS OF "MAKE"!   #####
  271.  
  272.  
  273. # ---------------------------------------------------------------------------
  274. #   Generic targets (can't assume make utility groks "$(MAKE)")
  275. # ---------------------------------------------------------------------------
  276.  
  277. generic:    unzips    # first try if unknown
  278.  
  279. generic2:        # second try if unknown:  hope make is called "make"...
  280.     make unzips CF="$(CF) -DBSD"
  281.  
  282. # ---------------------------------------------------------------------------
  283. #   "Normal" group (both big- and little-endian, structure-padding or not):
  284. # ---------------------------------------------------------------------------
  285.  
  286. 386i:        unzips    # sun386i, SunOS 4.0.2
  287. 3Bx:        unzips    # AT&T 3B2/1000-80; should work on any WE32XXX machine
  288. 7300:        unzips    # AT&T 7300 (M68000/SysV)
  289. apollo:        unzips    # Apollo Domain/OS machines
  290. bull:        unzips    # Bull DPX/2, BOS 2.00.45 (doesn't require -Xk switch)
  291. coherent:    unzips    # Coherent 3.10, Mark Williams C
  292. convex:        unzips    # Convex C-120 and C-210 (-O is enough; -ext is default)
  293. cray_cc:    unzips    # Cray-2 and Y-MP, using default (possibly old) compiler
  294. dec:        unzips    # DEC 5820 (MIPS RISC), test version of Ultrix v4.0
  295. encore:        unzips    # Multimax
  296. eta:        unzips    # ETA-10P*, hybrid SysV with BSD 4.3 enhancements
  297. gould:        unzips    # Gould PN9000 running UTX/32 2.1Bu01
  298. hp:        unzips    # HP 9000 series (68020), 4.3BSD or HP-UX A.B3.10 Ver D
  299. hpux:        unzips    # (to match zip's makefile entry)
  300. mips:        unzips    # MIPS M120-5(?), SysV.3 [error in sys/param.h file?]
  301. next10:        unzips    # NeXT (generic; use next2x or next3x for better opt.)
  302. pyramid:    unzips    # Pyramid 90X, prob. all, under >= OSx4.1, BSD universe
  303. rtaix:        unzips    # IBM RT 6150 under AIX 2.2.1
  304. sco:        unzips    # Xenix/386 (tested on 2.3.1); SCO Unix 3.2.0.
  305. stellar:    unzips    # gs-2000
  306. sun:        unzips    # Sun 3, 4; SunOS 4.x (SOME SYSTEMS ARE SYSTEM V!)
  307. tahoe:        unzips    # tahoe (CCI Power6/32), 4.3BSD
  308. ultrix:        unzips    # VAXen, DEC 58x0 (MIPS guts), DECstation 2100; v4.x
  309. vax:        unzips    # general-purpose VAX target (not counting VMS)
  310. xenix:        unzips    # Xenix/386 (tested on 2.3.1); SCO Unix 3.2.0.
  311.  
  312. # ---------------------------------------------------------------------------
  313. #   BSD group (for timezone structs [struct timeb]):
  314. # ---------------------------------------------------------------------------
  315.  
  316. bsd:        _bsd    # generic BSD (BSD 4.2 & Ultrix handled in unzip.h)
  317.  
  318. _bsd:
  319.     $(MAKE) unzips CF="$(CF) -DBSD"
  320.  
  321. # ---------------------------------------------------------------------------
  322. #   SysV group (for extern long timezone and ioctl.h instead of sgtty.h):
  323. # ---------------------------------------------------------------------------
  324.  
  325. amdahl:        _sysv    # Amdahl (IBM) mainframe, UTS (SysV) 1.2.4 and 2.0.1
  326. aviion:        _sysv    # Data General AViiONs, DG/UX 4.3x
  327. sgi:        _sysv    # Silicon Graphics Iris 4D, Irix SysV rel. 3.3.2
  328. sysv:        _sysv    # generic System V Unix (Xenix handled in unzip.h)
  329. xos:        _sysv    # Olivetti LSX-3005..3045, X/OS 2.3 and 2.4
  330.  
  331. _sysv:
  332.     $(MAKE) unzips CF="$(CF) -DSYSV"
  333.  
  334. # ---------------------------------------------------------------------------
  335. #   "Unique" group (require non-standard options):
  336. # ---------------------------------------------------------------------------
  337.  
  338. # MS-DOS:  Borland C++ 3.0
  339. bcc_dos:    _bcc_dos zi_bcc fu_bcc
  340.  
  341. _bcc_dos:    bcc_rsp
  342.     $(MAKE) unzip.exe CF="-O2 $(LOC)" CC=bcc LD=bcc E=.exe O=.obj\
  343.      M=msdos LOBJS="" LF="@bcc_rsp" LF2=""
  344.     del bcc_rsp
  345.  
  346. bcc_rsp:
  347.     echo $(OBJS1:.o=.obj) > bcc_rsp
  348.     echo msdos.obj $(OBJS2:.o=.obj) >> bcc_rsp
  349.  
  350. zi_bcc:
  351.     $(MAKE) zipinfo.exe CF="-O2 $(LOC)" CC=bcc LD=bcc E=.exe O=.obj\
  352.      ZL="" ZL2="" CP=copy RM=del
  353.  
  354. fu_bcc:
  355.     $(MAKE) funzip.exe CF="-O2 $(LOC)" CC=bcc LD=bcc E=.exe O=.obj\
  356.      OBJS="$(OBJF_DOS)" FL="" FL2="" CP=copy RM=del
  357.  
  358. # Cray-2 and Y-MP, running Unicos 5.1 to 6.1 (SysV + BSD enhancements)
  359. # and Standard (ANSI) C compiler 1.5, 2.0 or 3.0.
  360. cray:
  361.     $(MAKE) unzips CC=scc LD=scc
  362.  
  363. # Ditto, for Cray Standard C 3.0 or later.
  364. cray_v3:
  365.     $(MAKE) unzips CC="scc" LD="scc" CF="$(CF) -h scalar3 -h vector3"
  366.  
  367. # The unzip41 build on a Cyber 910/SGI running Irix v3.3.3 was successful
  368. # with the following change to Makefile:
  369. cyber_sgi:
  370.     $(MAKE) unzips CF="$(CF) -I/usr/include/bsd"\
  371.      LF="-lbsd $(LF)"
  372.  
  373. # The DIAB dnix 5.3 compiler does not define __STDC__ but understands
  374. # prototypes, void, etc., anyway.  It also does not provide any predefined
  375. # macros to detect this (aside from "unix" and the four file, line, time
  376. # and date macros).  Thus we must define MODERN and PROTO by hand.
  377. #
  378. dnix:        # 680X0, DIAB dnix 5.2/5.3 (a Swedish System V clone)
  379.     $(MAKE) unzips CF="$(CF) -X7 -X9 -DDNIX"
  380.  
  381. # Generic BSDish Unix gcc.  ``The -O2 only works with the latest version of
  382. # gcc; you may have to use -O only for earlier versions.  I have no idea why
  383. # -s causes this bug in gcc.''  [Bug:  "nm: unzip: no name list", "collect:
  384. # /usr/bin/nm returned 1 exit status".]  If you don't have strip, don't
  385. # worry about it (it just makes the executable smaller).
  386. #
  387. gcc:
  388.     $(MAKE) unzips CC=gcc LD=gcc CF="-O2 $(LOC)" LF2=""
  389.     strip $(UNZIPS)
  390.  
  391. # MS-DOS with D.J. Delorie's djgcc 1.08.  Note that go32 doesn't support
  392. # DOS function 0x38, so the default date format is used with the -v option.
  393. #
  394. gcc_dos: _gcc_dos zi_gcc fu_gcc
  395.  
  396. _gcc_dos: gcc_rsp
  397.     $(MAKE) unzip CC=gcc LD=gcc M=msdos CF="-O2 -Wall $(LOC)" CP=copy\
  398.          RM=del LOBJS="" LF="-o unzip @gcc_rsp" LF2=""
  399.     aout2exe unzip
  400.     del gcc_rsp
  401.     del unzip
  402.  
  403. gcc_rsp:
  404.     echo $(OBJS1) > gcc_rsp
  405.     echo msdos.o $(OBJS2) >> gcc_rsp
  406.  
  407. zi_gcc:
  408.     $(MAKE) zipinfo CF="-O2 -Wall $(LOC)" CC=gcc LD=gcc ZL2=""\
  409.      CP=copy RM=del
  410.     aout2exe zipinfo
  411.     del zipinfo
  412.  
  413. fu_gcc:
  414.     $(MAKE) funzip CF="-O2 $(LOC)" CC=gcc LD=gcc FL2=""\
  415.      CP=copy RM=del
  416.     aout2exe funzip
  417.     del funzip
  418.  
  419. # Heurikon HK68 (68010), UniPlus+ System V 5.0, Green Hills C-68000
  420. hk68:
  421.     $(MAKE) unzips CC="gcc" LD="gcc" LF="-n $(LF)" \
  422.      CF="-ga -X138 $(LOC) -Dlocaltime=localti -Dtimezone=timezon"
  423.  
  424. # Rules needed to build the unzip program for an SGI Iris Indigo running
  425. # Irix Version 4.0.1
  426. indigo:
  427.     $(MAKE) unzips CF="-cckr $(CF) -DSYSV $(LOC)"
  428.  
  429. # Linux is almost sysv but not quite
  430. linux:            # Linux pre-0.96 with gcc 2.1
  431. #    $(MAKE) unzips CF="$(CF) -DLINUX" CC=gcc LD=gcc  (linux pre-defined?)
  432.     $(MAKE) unzips CC=gcc LD=gcc
  433.  
  434. # Minix 1.5 PC for the 386 with gcc or bcc.  [GRR: add LD=gcc?]
  435. minix:
  436.     $(MAKE) unzips CF="$(CF) -DMINIX" CC=gcc
  437.  
  438. # MS-DOS:  Microsoft C 6.0 and NMAKE.  Can't use SYSTEM environment variable
  439. # ("default" target is > 200 characters).  "nmake msc_dos" works fine, aside
  440. # from an irrelevant message (possibly) about the creation of a temporary file.
  441. # Environment variable LOCAL_UNZIP should be set via "SET LOCAL_UNZIP=-FPi87"
  442. # if you use the 80x87 library; also add -G2 or -G3 if using a 286/386/486.
  443. #
  444. msc_dos:    _msc_dos zi_msc fu_msc
  445.  
  446. _msc_dos:    msc_rsp
  447.     $(MAKE) unzip.exe CF="-W3 -Oait -Gs -nologo $(LOC)" CC=cl LD=link E=.exe\
  448.      O=.obj M=msdos LOBJS="" LF="@msc_rsp" LF2=""
  449.     del msc_rsp
  450.  
  451. msc_rsp:
  452.     echo $(OBJS1:.o=.obj) + > msc_rsp
  453.     echo msdos.obj $(OBJS2:.o=.obj)/noi/e/st:0x1000; >> msc_rsp
  454.  
  455. zi_msc:
  456.     $(MAKE) zipinfo.exe CF="-Oait -Gs -nologo $(LOC)" CC=cl LD=link E=.exe\
  457.      O=.obj ZL="/noi/nol/e" ZL2=",zipinfo;" CP=copy RM=del
  458.  
  459. fu_msc:        # (probably over 128-char limit)
  460.     $(MAKE) funzip.exe CF="-Oait -Gs -nologo $(LOC)" CC=cl LD=link E=.exe\
  461.      O=.obj OBJS="$(OBJF_DOS)" FL="/noi/nol/e" FL2=",funzip;" CP=copy\
  462.      RM=del
  463.  
  464. # $(LOCAL_UNZIP):  math libraries and/or any other personal or debugging
  465. #                  definitions:  e.g., SET LOCAL_UNZIP=-FPi87 -DDEBUG_STRUC
  466. # $(NOD):  intended to be used as   SET NOD=-link /nod:slibcep   to allow the
  467. #          use of default library names (slibce.lib) instead of protected-mode
  468. #          names (slibcep.lib), but it fails:  MSC adds its own /nod qualifier,
  469. #          and there seems to be no way to override this.  Typical...
  470. #
  471. msc_os2:        # 16-bit OS/2 (1.x) with MSC 6.00 (use makefile.os2)
  472.     $(MAKE) -nologo unzips CC=cl LD=cl E=.exe O=.obj\
  473.      OBJS="$(OBJS_OS2)" OBJZ="$(OBJZ_OS2)"\
  474.      CF="-nologo -AC -Ocegit -G2s -DOS2 -DMSC $(LOC)"\
  475.      LF="-nologo -AC $(LOC) -Lp -F 2000"\
  476.      LF2="unzip.def -o unzip.exe $(NOD)" CP=copy RM=del\
  477.      ZL="-nologo -AC $(LOC) -Lp -Fb" ZL2="zipinfo.def -o zipinfo.exe"
  478.  
  479. # NeXT info.
  480. next:
  481.     @echo
  482.     @echo\
  483.  '  Please pick a specific NeXT target:  "make next10" will create a generic'
  484.     @echo\
  485.  '  NeXT executable; "make next2x" will create a smaller executable (for'
  486.     @echo\
  487.  '  NeXTstep 2.0 and higher); "make next3x" will create a small executable'
  488.     @echo\
  489.  '  with significantly better optimization (NeXTstep 3.0 and higher only).'
  490.     @echo
  491.  
  492. # NeXT 2.x: make the executable smaller.
  493. next2x:            # 68030 BSD 4.3+Mach
  494.     $(MAKE) unzips LF2="-object -s"
  495.  
  496. # NeXT 3.x: as above, plus better optimization.
  497. next3x:            # 68030 BSD 4.3+Mach
  498.     $(MAKE) unzips CF="-O2 $(LOC)" LF2="-object -s"
  499.  
  500. # Rules to build the unzip program on a DecStation running DEC OSF/1 V1.0.
  501. # This machine hasn't got ftime(3) in the standard C library.
  502. osf1:
  503.     $(MAKE) unzips LF2="-lbsd"
  504.  
  505. # I successfully compiled and tested the unzip program (v30) for the
  506. # Silicon Graphics environment (Personal Iris 4D20/G with IRIX v3.2.2)
  507. p_iris:
  508.     $(MAKE) unzips CF="$(CF) -I/usr/include/bsd -DBSD"\
  509.      LF="-lbsd $(LF)"
  510.  
  511. # Sequent Symmetry running Dynix/ptx (sort of SysV.3):  needs to link
  512. # with libseq to get symlink().
  513. ptx:
  514.     $(MAKE) unzip CF="$(CF) -DSYSV -DTERMIO" LF2="$(LF2) -lseq"
  515.  
  516. # I have finished porting unzip 3.0 to the Pyramid 90X under OSX4.1.
  517. # The biggest problem was the default structure alignment yielding two
  518. # extra bytes.  The compiler has the -q option to pack structures, and
  519. # this was all that was needed.  To avoid needing ZMEMS we could compile
  520. # in the AT&T universe, but it runs more slowly!
  521. #
  522. #UnZip 5.0f:  moved to regular targets as test
  523. #pyramid:    # Pyramid 90X, probably all, under >= OSx4.1, BSD universe
  524. #    make unzips CF="$(CF) -q"
  525.  
  526. # IBM RS/6000 under AIX 3.2
  527. rs6000:
  528.     $(MAKE) unzips CF="$(CF) -DBSD -D_BSD -DUNIX" LF="-lbsd $(LF)"
  529.  
  530. # SCO cross compile from unix to DOS. Tested with Xenix/386 and OpenDeskTop.
  531. # Should work with Xenix/286 as well. (davidsen)  Note that you *must* remove
  532. # the Unix objects and executable before doing this!  (Piet Plomp:  gcc won't
  533. # recognize the -M0 flag which forces 8086 code.)
  534. #
  535. sco_dos:
  536.     $(MAKE) unzips CF="-O $(LOC) -DNO_ERRNO -dos -M0" LF="-dos -F 2000"\
  537.      LF2="-o unzip.exe" ZL="-dos" ZL2="-o zipinfo.exe" FL="-dos"\
  538.      FL2="-o funzip.exe"
  539.  
  540. # SCO Xenix/286 2.2.1
  541. sco_x286:
  542.     $(MAKE) unzips CF="$(CF) -Ml2" LF="$(LF) -Ml2"
  543.  
  544. # Sequent Symmetry is a 386 but needs -DZMEM
  545. # This should also work on Balance but I can't test it just yet.
  546. sequent:    # Sequent w/Dynix
  547.     $(MAKE) unzips CF="$(CF) -DBSD -DZMEM"
  548.  
  549. # AT&T 6300+, System V.2 Unix:  run-time out-of-memory error if don't use -Ml;
  550. # also compile-time error if work arrays dimensioned at HSIZE+2 (>32K)
  551. sysv6300:
  552.     $(MAKE) unzips CF="$(CF) -Ml -DSYSV" LF="$(LF) -Ml"\
  553.      ZL="$(ZL) -Ml" FL="$(FL) -Ml"
  554.  
  555. # I didn't do this.  I swear.  No, really.
  556. wombat:        # Wombat 68000 (or whatever)
  557.     @echo
  558.     @echo  '    Ha ha!  Just kidding.'
  559.     @echo
  560.  
  561.  
  562. ################
  563. # ATTRIBUTIONS #
  564. ################
  565.  
  566. # Thanks to the following people for their help in testing and/or porting
  567. # to various machines (and thanks to the many others who aren't listed
  568. # here but should be):
  569. #
  570. #  original, BSDish Unix targets:  Carl Mascott <cmascott@world.std.com>
  571. #  386i:    Richard Stephen <stephen@corp.telecom.co.nz>
  572. #  3Bx:        Bob Kemp <hrrca!bobc@cbnewse.att.com>
  573. #  7300:    Richard H. Gumpertz <rhg@cpsolv.CPS.COM>
  574. #        Greg Roelofs <roelofs@nas.nasa.gov>
  575. #  amdahl:    Kim DeVaughn <ked01@juts.ccc.amdahl.com>, Greg Roelofs
  576. #  apollo:    Tim Geibelhaus
  577. #  aviion:    Bruce Kahn <bkahn@archive.webo.dg.com>
  578. #  bcc_dos:    Onno van der Linden <linden@fwi.uva.nl>
  579. #  bull:    Matt D'Errico <doc@magna.com>
  580. #  coherent:    David Fenyes <dfenyes@thesis1.med.uth.tmc.edu>
  581. #  convex:    Rafal Maszkowski <rzm@mat.torun.edu.pl>
  582. #        Rafael Pappalardo <rafapa@obelix.cica.es>
  583. #        Randy Wright <rwright@convex.com>
  584. #  cray:    Greg Roelofs, Paul Borman <prb@cray.com>
  585. #  cray_cc:    Greg Roelofs
  586. #  cray_v3:    Greg Roelofs
  587. #  cyber_sgi:    Clint Pulley <u001@cs910.cciw.ca>
  588. #  dec:        "Moby" Dick O'Connor <djo7613@u.washington.edu>
  589. #  dnix:    Bo Kullmar <bk@kullmar.se>
  590. #  eta:        Greg Flint <afc@klaatu.cc.purdue.edu>
  591. #  gcc:        Jean-loup Gailly <jloup@chorus.fr>
  592. #  gcc_dos:    Onno van der Linden
  593. #  gcc_os2:    Kai Uwe Rommel <rommel@informatik.tu-muenchen.de>
  594. #  gould:    Onno van der Linden
  595. #  hk68:    John Limpert <gronk!johnl@uunet.UU.NET>
  596. #  hp:        Randy McCaskile <rmccask@seas.gwu.edu> (HP-UX)
  597. #        Gershon Elber <gershon@cs.utah.edu> (HP BSD 4.3)
  598. #  icc_os2:    Kai Uwe Rommel
  599. #  indigo:    Kjetil Wiekhorst J|rgensen <jorgens@lise.unit.no>
  600. #  linux:    Humberto Ortiz-Zuazaga <zuazaga@ucunix.san.uc.edu>
  601. #  minix:    Kai Uwe Rommel (Minix 1.5)
  602. #  mips:    Peter Jones <jones@mips1.uqam.ca>
  603. #  msc_dos:    Greg Roelofs <roe2@ellis.uchicago.edu>
  604. #        Piet W. Plomp <piet@icce.rug.nl>
  605. #  msc_os2:    Wim Bonner <wbonner@yoda.eecs.wsu.edu>
  606. #        Kai Uwe Rommel, Greg Roelofs
  607. #  next:    Greg Roelofs
  608. #  next10:    Mark Adler <madler@cco.caltech.edu>
  609. #  next2x:    Mark Adler
  610. #  next3x:    Mark Adler
  611. #  osf1:    Kjetil Wiekhorst J{\o}rgensen
  612. #  p_iris:    Valter V. Cavecchia <root@itnsg1.cineca.it>
  613. #  ptx:        Alan Phillips <postmaster@lancaster.ac.uk>
  614. #  pyramid:    James Dugal <jpd@usl.edu>
  615. #  rs6000:    Filip Gieszczykiewicz <fmg@smi.med.pitt.edu>
  616. #        Trevor Paquette <tpaquett@ita.lgc.com>
  617. #  rtaix:    Erik-Jan Vens
  618. #  sco:        Onno van der Linden (SCO Unix 3.2.0)
  619. #           Bill Davidsen <davidsen@crdos1.crd.ge.com> (Xenix/386)
  620. #  sco_dos:    Bill Davidsen, Piet W. Plomp
  621. #  sco_x286:    Ricky Mobley <ddi1!lrark!rick@uunet.UU.NET>
  622. #  sequent:    Phil Howard <phil@ux1.cso.uiuc.edu>
  623. #  sgi:        Greg Roelofs (Iris 4D/380?)
  624. #  sun:        Onno van der Linden (Sun 4), Greg Roelofs (Sun 3, 4)
  625. #  sysv:    Greg Roelofs
  626. #  sysv6300:    Peter Mauzey <ptm@mtdcr.att.com>
  627. #  tahoe:    Mark Edwards <mce%sdcc10@ucsd.edu>
  628. #  ultrix:    Greg Flint (VAX)
  629. #        Michael Graff <explorer@iastate.edu> (DECstation 2100?)
  630. #        Greg Roelofs (DEC 5810)
  631. #        Alex A Sergejew <aas@brain.wph.uq.oz.au>
  632. #  vax:        Forrest Gehrke <feg@dodger.att.com> (SysV)
  633. #        David Kirschbaum <kirsch@usasoc.soc.mil> (BSD 4.3)
  634. #        Jim Steiner <steiner@pica.army.mil> (8600+Ultrix)
  635. #  wombat:    Joe Isuzu <joe@trustme.isuzu.com>
  636. #  xenix:    Onno van der Linden, Bill Davidsen, Greg Roelofs
  637. #  xos:        Fulvio Marino <fulvio@iconet.ico.olivetti.com>
  638.